Micron Document
<!DOCTYPE html>
<html class="client-nojs vector-feature-night-mode-disabled vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-sticky-header-enabled" lang="en" dir="ltr"><head>
<meta charset="UTF-8">
<title>Template processor</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="canonical" href="https://en.wikipedia.org/wiki/Template_processor"> <link href="./mw/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/user.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./mw/site.styles.css">
<link rel="stylesheet" type="text/css" href="./mw/noscript.css">
<link rel="stylesheet" type="text/css" href="./footer.css">
<link rel="stylesheet" type="text/css" href="./vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Template_processor rootpage-Template_processor skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading">
<span id="openzim-page-title" class="mw-page-title-main"><span class="mw-page-title-main">Template processor</span></span>
</h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr">

<p>A <b>template processor</b> (also known as a <b>template engine</b> or <b>template parser</b>) is <a href="Software" title="Software">software</a> designed to combine <i>template</i>s with data (defined by a <a href="Data_model" title="Data model">data model</a>) to produce resulting <a href="Electronic_document" title="Electronic document">documents</a> or <a href="Computer_program" title="Computer program">programs</a>.<sup id="cite_ref-Niemeyer000_1-0" class="reference"><a href="#cite_note-Niemeyer000-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-Manolescu000_2-0" class="reference"><a href="#cite_note-Manolescu000-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-Fowler000_3-0" class="reference"><a href="#cite_note-Fowler000-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup> The language that the templates are written in is known as a <b>template language</b> or <b>templating language</b>. For purposes of this article, a result document is any kind of formatted output, including <a href="Documents" class="mw-redirect" title="Documents">documents</a>, <a href="Web_page" title="Web page">web pages</a>, or <a href="Source_code" title="Source code">source code</a> (in <a href="Source_code_generation" class="mw-redirect" title="Source code generation">source code generation</a>), either in whole or in fragments. A template engine is ordinarily included as a part of a <a href="Web_template_system" title="Web template system">web template system</a> or <a href="Application_framework" title="Application framework">application framework</a>, and may be used also as a <a href="Preprocessor" title="Preprocessor">preprocessor</a> or <a href="Filter_(software)" title="Filter (software)">filter</a>.
</p>
<meta property="mw:PageProp/toc">
<div class="mw-heading mw-heading2"><h2 id="Typical_features">Typical features</h2></div>
<p>Template engines typically include features common to most <a href="High-level_programming_language" title="High-level programming language">high-level programming languages</a>, with an emphasis on features for processing <a href="Plain_text" title="Plain text">plain text</a>.
</p><p>Such features include:
</p>
<ul><li><a href="Variable_(programming)" class="mw-redirect" title="Variable (programming)">variables</a> and <a href="Function_(computer_science)" class="mw-redirect" title="Function (computer science)">functions</a></li>
<li>text replacement</li>
<li>file inclusion (or <a href="Transclusion" title="Transclusion">transclusion</a>)</li>
<li>conditional evaluation and <a href="Control_flow#Loops" title="Control flow">loops</a></li></ul>
<div class="mw-heading mw-heading2"><h2 id="Embedded_template_engines">Embedded template engines</h2></div>
<p>While template processors are typically a separate piece of software, used as part of a system or framework, simple templating languages are commonly included in the string processing features of <a href="General-purpose_programming_language" title="General-purpose programming language">general-purpose programming languages</a>, and in text processing programs, notably <a href="Text_editor" title="Text editor">text editors</a> or <a href="Word_processor" title="Word processor">word processors</a>. The templating languages are generally simple substitution-only languages, in contrast to the more sophisticated facilities in full-blown template processors, but may contain some logic.
</p><p>Simple examples include <a href="Printf_format_string" class="mw-redirect" title="Printf format string">‘printf’ print format strings</a>, found in many programming languages, and <a href="Snippet_(programming)" title="Snippet (programming)">snippets</a>, found in a number of text editors and <a href="Source_code_editor" class="mw-redirect" title="Source code editor">source code editors</a>. In word processors, <a href="Template_(word_processing)" title="Template (word processing)">templates</a> are a common feature, while automatic filling in of the templates is often referred to as <a href="Mail_merge" title="Mail merge">mail merge</a>.
</p><p>An illustrative example of the complementary nature of <a href="Parsing" title="Parsing">parsing</a> and templating is the <code>s</code> (substitute) command in the <a href="Sed" title="Sed">sed</a> text processor, originating from search-and-replace in the <a href="Ed_(text_editor)" class="mw-redirect" title="Ed (text editor)">ed</a> text editor. Substitution commands are of the form <code>s/regexp/replacement/</code>, where <code>regexp</code> is a <a href="Regular_expression" title="Regular expression">regular expression</a>, for parsing input, and <code>replacement</code> is a simple template for output, either literal text, or a format string containing the characters <code>&amp;</code> for "entire match" or the special <a href="Escape_sequence" title="Escape sequence">escape sequences</a> <code>\1</code> through <code>\9</code> for the <i>n</i>th sub-expression. For example, <code>s/(cat|dog)s?/\1s/g</code> replaces all occurrences of "cat" or "dog" with "cats" or "dogs", without duplicating an existing "s": <code>(cat|dog)</code> is the 1st (and only) sub-expression in the regexp, and <code>\1</code> in the format string substitutes this into the output.
</p>
<div class="mw-heading mw-heading2"><h2 id="System_elements">System elements</h2></div>
<p>All template processing systems consist of at least these primary elements:
</p>
<ul><li>an associated <b>data model</b>;</li>
<li>one or more <b>source templates</b>;</li>
<li>a processor or <b>template engine</b>;</li>
<li>generated output in the form of <b>result documents</b>.</li></ul>
<div class="mw-heading mw-heading3"><h3 id="Data_model">Data model</h3></div>
<p>This may be a <a href="Relational_database" title="Relational database">relational database</a>, a source file such as <a href="XML" title="XML">XML</a>, an alternate format of <a href="Flat_file_database" class="mw-redirect" title="Flat file database">flat file database</a>, a <a href="Spreadsheet" title="Spreadsheet">spreadsheet</a> or any of other various sources of preformatted data. Some template processing systems are limited in the types of data that can be used. Others are designed for maximum flexibility and allow many different types of data.
</p>
<div class="mw-heading mw-heading3"><h3 id="Source_template">Source template</h3></div>
<p>Source templates are traditionally specified:
</p>
<ul><li>according to a pre-existing programming language;</li>
<li>according to a specially defined template language;</li>
<li>according to the features of a hosting software application; or</li>
<li>according to a hybrid combination of some or all of the above.</li></ul>
<div class="mw-heading mw-heading3"><h3 id="Template_engine">Template engine</h3></div>
<p>The template engine is responsible for:
</p>
<ul><li>connecting to the data model;</li>
<li>processing the code specified in the source templates; and</li>
<li>directing the output to a specific <a href="Pipeline_(computing)" title="Pipeline (computing)">pipeline</a>, <a href="Text_file" title="Text file">text file</a>, or <a href="Stream_(computing)" title="Stream (computing)">stream</a>.</li></ul>
<p>Additionally some template engines allow additional configuration options.
</p>
<div class="mw-heading mw-heading3"><h3 id="Result_documents">Result documents</h3></div>
<p>These may consist of an entire document or a document fragment.
</p>
<div class="mw-heading mw-heading2"><h2 id="Uses">Uses</h2></div>
<p>Template processing is used in various contexts for different purposes. The specific purpose is ordinarily contingent upon the <a href="Software_application" class="mw-redirect" title="Software application">software application</a> or template engine in use. However, the flexibility of template processing systems often enables unconventional uses for purposes not originally intended by the original designers.
</p>
<div class="mw-heading mw-heading3"><h3 id="Template_engine_2">Template engine</h3></div>
<p>A <b>template engine</b> is a specific kind of template processing module that exhibits all of the major features of a modern <a href="Programming_language" title="Programming language">programming language</a>. The term <i>template engine</i> evolved as a generalized description of programming languages whose primary or exclusive purpose was to process templates and data to output text. The use of this term is most notably applied to <a href="Web_development" title="Web development">web development</a> using a <a href="Web_template_system" title="Web template system">web template system</a>, and it is also applied to other contexts as well.<sup id="cite_ref-TmpEngUses_4-0" class="reference"><a href="#cite_note-TmpEngUses-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Document_generation">Document generation</h3></div>
<p>Document generation frameworks typically use template processing as the central model for generating documents.
</p>
<div class="mw-heading mw-heading3"><h3 id="Source_code_generation">Source code generation</h3></div>
<p>Source code generation tools support generation of <a href="Source_code" title="Source code">source code</a> (as the result documents) from abstract data models (e.g., UML, relational data, domain-specific enterprise data stores) for particular application domains, particular organizations, or in simplifying the production process for <a href="Computer_programmer" class="mw-redirect" title="Computer programmer">computer programmers</a>.
</p>
<div class="mw-heading mw-heading3"><h3 id="Software_functionality">Software functionality</h3></div>
<p>A <a href="World_Wide_Web" title="World Wide Web">web</a> template engine processes web templates and source data (typically from a <a href="Relational_database" title="Relational database">relational database</a>) to produce one or more output <a href="Web_page" title="Web page">web pages</a> or page fragments. It is ordinarily included as a part of a <a href="Web_template_system" title="Web template system">web template system</a> or <a href="Application_framework" title="Application framework">application framework</a>. Currently, template processing software is most frequently used in the context of development for the <a href="World_Wide_Web" title="World Wide Web">web</a>.
</p>
<div class="mw-heading mw-heading2"><h2 id="Comparison">Comparison</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1236090951">
/* start https://en.wikipedia.org/ */


.mw-parser-output .hatnote{font-style:italic}.mw-parser-output div.hatnote{padding-left:1.6em;margin-bottom:0.5em}.mw-parser-output .hatnote i{font-style:normal}.mw-parser-output .hatnote+link+.hatnote{margin-top:-0.5em}@media print{body.ns-0 .mw-parser-output .hatnote{display:none!important}}


/* end https://en.wikipedia.org/ */
</style><div role="note" class="hatnote navigation-not-searchable">Further information: <a href="Comparison_of_web_template_engines" title="Comparison of web template engines">Comparison of web template engines</a></div>
<p><a href="XSLT" title="XSLT">XSLT</a> is a template processing model designed by <a href="W3C" class="mw-redirect" title="W3C">W3C</a>. It is designed primarily for transformations on <a href="XML" title="XML">XML</a> data (into <a href="Web_document" class="mw-redirect" title="Web document">web documents</a> or other output).
</p><p><a href="Programming_languages" class="mw-redirect" title="Programming languages">Programming languages</a> such as <a href="Perl" title="Perl">Perl</a>, <a href="Python_(programming_language)" title="Python (programming language)">Python</a>, <a href="PHP" title="PHP">PHP</a>, <a href="Ruby_(programming_language)" title="Ruby (programming language)">Ruby</a>, <a href="C_Sharp_(programming_language)" title="C Sharp (programming language)">C#</a>, <a href="Java_(programming_language)" title="Java (programming language)">Java</a>, and <a href="Go_(programming_language)" title="Go (programming language)">Go</a> support template processing either natively, or through add-on libraries and modules. <a href="JavaServer_Pages" class="mw-redirect" title="JavaServer Pages">JavaServer Pages</a>,<sup id="cite_ref-JSP_for_Java_5-0" class="reference"><a href="#cite_note-JSP_for_Java-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup> <a href="Active_Server_Pages" title="Active Server Pages">Active Server Pages</a>,<sup id="cite_ref-ASP10_for_VBS_JS_6-0" class="reference"><a href="#cite_note-ASP10_for_VBS_JS-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup> <a href="Genshi_(templating_language)" title="Genshi (templating language)">Genshi</a> (for Python), and <a href="ERuby" title="ERuby">eRuby</a> are examples of template engines designed specifically for web application development.
</p><p>Moreover, template processing is sometimes included as a sub-feature of software packages like <a href="Text_editors" class="mw-redirect" title="Text editors">text editors</a>, <a href="Integrated_development_environment" title="Integrated development environment">IDEs</a> and <a href="Relational_database_management_system" class="mw-redirect" title="Relational database management system">relational database management systems</a>.
</p>
<div class="mw-heading mw-heading2"><h2 id="Benefits_of_using_template_engines">Benefits of using template engines</h2></div>
<ul><li>encourages organization of source code into operationally-distinct layers (see e.g., <a href="Model%E2%80%93view%E2%80%93controller" title="Model–view–controller">MVC</a>)</li>
<li>enhances productivity by reducing unnecessary reproduction of effort</li>
<li>enhances teamwork by allowing separation of work based on skill-set (e.g., artistic vs. technical)</li></ul>
<div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2></div>
<ul><li><a href="Document_automation" title="Document automation">Document automation</a></li>
<li><a href="Document_modelling" class="mw-redirect" title="Document modelling">Document modelling</a></li>
<li><a href="Domain-specific_programming_language" class="mw-redirect" title="Domain-specific programming language">Domain-specific programming language</a></li>
<li><a href="Glossary_of_operating_systems_terms#Templating" title="Glossary of operating systems terms">Glossary of operating systems terms §&nbsp;Templating</a></li>
<li><a href="Internationalization_and_localization" title="Internationalization and localization">Internationalization and localization</a>
<ul><li><a href="Common_Locale_Data_Repository" title="Common Locale Data Repository">Common Locale Data Repository</a></li>
<li><a href="Gettext" title="Gettext">gettext</a></li></ul></li>
<li><a href="Layout_engines" class="mw-redirect" title="Layout engines">Layout engines</a></li>
<li><a href="Macro_(computer_science)" title="Macro (computer science)">Macro (computer science)</a></li>
<li><a href="Web_template_system" title="Web template system">Web template system</a>
<ul><li><a href="Comparison_of_web_template_engines" title="Comparison of web template engines">Comparison of web template engines</a></li></ul></li></ul>
<div class="mw-heading mw-heading2"><h2 id="References">References</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1239543626">
/* start https://en.wikipedia.org/ */


.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}


/* end https://en.wikipedia.org/ */
</style><div class="reflist">
<div class="mw-references-wrap"><ol class="references">
<li id="cite_note-Niemeyer000-1"><span class="mw-cite-backlink"><b><a href="#cite_ref-Niemeyer000_1-0">^</a></b></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">
/* start https://en.wikipedia.org/ */


.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("./mw/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("./mw/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("./mw/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("./mw/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}


/* end https://en.wikipedia.org/ */
</style><cite id="CITEREFNiemeyer2002" class="citation book cs1">Niemeyer, Patrick (2002). <i>Learning Java</i>. Sebastopol: O'Reilly. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>0-596-00285-8</bdi>.</cite></span>
</li>
<li id="cite_note-Manolescu000-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-Manolescu000_2-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFManolescu2006" class="citation book cs1">Manolescu, Dragos (2006). <i>Pattern Languages of Program Design 5</i>. Reading: Addison-Wesley Professional. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>0-321-32194-4</bdi>.</cite></span>
</li>
<li id="cite_note-Fowler000-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-Fowler000_3-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFFowler2003" class="citation book cs1">Fowler, Martin (2003). <i>Patterns of Enterprise Application Architecture</i>. Boston: Addison-Wesley. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>0-321-12742-0</bdi>.</cite></span>
</li>
<li id="cite_note-TmpEngUses-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-TmpEngUses_4-0">^</a></b></span> <span class="reference-text">(see e.g., Velocity, TemplateToolkit, Freemarker ).</span>
</li>
<li id="cite_note-JSP_for_Java-5"><span class="mw-cite-backlink"><b><a href="#cite_ref-JSP_for_Java_5-0">^</a></b></span> <span class="reference-text">
JavaServer Pages is a technology released by Sun for use with the Java programming language.
<cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://java.sun.com/products/jsp/faq.html#1">"JavaServer Pages Technology"</a>. 2006-10-10<span class="reference-accessdate">. Retrieved <span class="nowrap">2006-10-10</span></span>.</cite></span>
</li>
<li id="cite_note-ASP10_for_VBS_JS-6"><span class="mw-cite-backlink"><b><a href="#cite_ref-ASP10_for_VBS_JS_6-0">^</a></b></span> <span class="reference-text">
ASP 1.0 was originally released for use with Microsoft VBScript and JScript.
It was an extension to Microsoft IIS.</span>
</li>
</ol></div></div>
<div class="mw-heading mw-heading2"><h2 id="External_links">External links</h2></div>
<ul><li><a rel="nofollow" class="external text" href="http://www.cs.usfca.edu/~parrt/papers/mvc.templates.pdf">Enforcing Strict Model-View Separation in Template Engines</a></li></ul>
<div class="navbox-styles"><style data-mw-deduplicate="TemplateStyles:r1129693374">
/* start https://en.wikipedia.org/ */


.mw-parser-output .hlist dl,.mw-parser-output .hlist ol,.mw-parser-output .hlist ul{margin:0;padding:0}.mw-parser-output .hlist dd,.mw-parser-output .hlist dt,.mw-parser-output .hlist li{margin:0;display:inline}.mw-parser-output .hlist.inline,.mw-parser-output .hlist.inline dl,.mw-parser-output .hlist.inline ol,.mw-parser-output .hlist.inline ul,.mw-parser-output .hlist dl dl,.mw-parser-output .hlist dl ol,.mw-parser-output .hlist dl ul,.mw-parser-output .hlist ol dl,.mw-parser-output .hlist ol ol,.mw-parser-output .hlist ol ul,.mw-parser-output .hlist ul dl,.mw-parser-output .hlist ul ol,.mw-parser-output .hlist ul ul{display:inline}.mw-parser-output .hlist .mw-empty-li{display:none}.mw-parser-output .hlist dt::after{content:": "}.mw-parser-output .hlist dd::after,.mw-parser-output .hlist li::after{content:" · ";font-weight:bold}.mw-parser-output .hlist dd:last-child::after,.mw-parser-output .hlist dt:last-child::after,.mw-parser-output .hlist li:last-child::after{content:none}.mw-parser-output .hlist dd dd:first-child::before,.mw-parser-output .hlist dd dt:first-child::before,.mw-parser-output .hlist dd li:first-child::before,.mw-parser-output .hlist dt dd:first-child::before,.mw-parser-output .hlist dt dt:first-child::before,.mw-parser-output .hlist dt li:first-child::before,.mw-parser-output .hlist li dd:first-child::before,.mw-parser-output .hlist li dt:first-child::before,.mw-parser-output .hlist li li:first-child::before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child::after,.mw-parser-output .hlist dd dt:last-child::after,.mw-parser-output .hlist dd li:last-child::after,.mw-parser-output .hlist dt dd:last-child::after,.mw-parser-output .hlist dt dt:last-child::after,.mw-parser-output .hlist dt li:last-child::after,.mw-parser-output .hlist li dd:last-child::after,.mw-parser-output .hlist li dt:last-child::after,.mw-parser-output .hlist li li:last-child::after{content:")";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li::before{content:" "counter(listitem)"\a0 "}.mw-parser-output .hlist dd ol>li:first-child::before,.mw-parser-output .hlist dt ol>li:first-child::before,.mw-parser-output .hlist li ol>li:first-child::before{content:" ("counter(listitem)"\a0 "}


/* end https://en.wikipedia.org/ */
</style><style data-mw-deduplicate="TemplateStyles:r1236075235">
/* start https://en.wikipedia.org/ */


.mw-parser-output .navbox{box-sizing:border-box;border:1px solid #a2a9b1;width:100%;clear:both;font-size:88%;text-align:center;padding:1px;margin:1em auto 0}.mw-parser-output .navbox .navbox{margin-top:0}.mw-parser-output .navbox+.navbox,.mw-parser-output .navbox+.navbox-styles+.navbox{margin-top:-1px}.mw-parser-output .navbox-inner,.mw-parser-output .navbox-subgroup{width:100%}.mw-parser-output .navbox-group,.mw-parser-output .navbox-title,.mw-parser-output .navbox-abovebelow{padding:0.25em 1em;line-height:1.5em;text-align:center}.mw-parser-output .navbox-group{white-space:nowrap;text-align:right}.mw-parser-output .navbox,.mw-parser-output .navbox-subgroup{background-color:#fdfdfd}.mw-parser-output .navbox-list{line-height:1.5em;border-color:#fdfdfd}.mw-parser-output .navbox-list-with-group{text-align:left;border-left-width:2px;border-left-style:solid}.mw-parser-output tr+tr>.navbox-abovebelow,.mw-parser-output tr+tr>.navbox-group,.mw-parser-output tr+tr>.navbox-image,.mw-parser-output tr+tr>.navbox-list{border-top:2px solid #fdfdfd}.mw-parser-output .navbox-title{background-color:#ccf}.mw-parser-output .navbox-abovebelow,.mw-parser-output .navbox-group,.mw-parser-output .navbox-subgroup .navbox-title{background-color:#ddf}.mw-parser-output .navbox-subgroup .navbox-group,.mw-parser-output .navbox-subgroup .navbox-abovebelow{background-color:#e6e6ff}.mw-parser-output .navbox-even{background-color:#f7f7f7}.mw-parser-output .navbox-odd{background-color:transparent}.mw-parser-output .navbox .hlist td dl,.mw-parser-output .navbox .hlist td ol,.mw-parser-output .navbox .hlist td ul,.mw-parser-output .navbox td.hlist dl,.mw-parser-output .navbox td.hlist ol,.mw-parser-output .navbox td.hlist ul{padding:0.125em 0}.mw-parser-output .navbox .navbar{display:block;font-size:100%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em}body.skin--responsive .mw-parser-output .navbox-image img{max-width:none!important}@media print{body.ns-0 .mw-parser-output .navbox{display:none!important}}


/* end https://en.wikipedia.org/ */
</style></div><div role="navigation" class="navbox" aria-labelledby="Types_of_computer_language61" style="padding:3px"><table class="nowraplinks mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><style data-mw-deduplicate="TemplateStyles:r1239400231">
/* start https://en.wikipedia.org/ */


.mw-parser-output .navbar{display:inline;font-size:88%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar a>span,.mw-parser-output .navbar a>abbr{text-decoration:inherit}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}html.skin-theme-clientpref-night .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}@media(prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}}@media print{.mw-parser-output .navbar{display:none!important}}


/* end https://en.wikipedia.org/ */
</style><div id="Types_of_computer_language61" style="font-size:114%;margin:0 4em">Types of <a href="Computer_language" title="Computer language">computer language</a></div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%">Types</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Architecture_description_language" title="Architecture description language">Architecture description</a></li>
<li><a href="Data_exchange#Data_exchange_languages" title="Data exchange">Data exchange</a></li>
<li><a href="Hardware_description_language" title="Hardware description language">Hardware description</a></li>
<li><a href="Knowledge_representation_language" class="mw-redirect" title="Knowledge representation language">Knowledge representation</a></li>
<li><a href="Markup_language" title="Markup language">Markup</a></li>
<li><a href="Modeling_language" title="Modeling language">Modeling</a></li>
<li><a href="Programming_language" title="Programming language">Programming language</a></li>
<li><a href="Query_language" title="Query language">Query</a></li>
<li><a href="Shading_language" title="Shading language">Shading</a></li>
<li><a href="Specification_language" title="Specification language">Specification</a></li>
<li><a href="Style_sheet_language" title="Style sheet language">Stylesheet</a></li>
<li><a href="Transformation_language" title="Transformation language">Transformation</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">See also</th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li>Category:Lists of computer languages</li>
<li>Category:Lists of programming languages</li>
<li><a href="List_of_programming_languages_by_type" title="List of programming languages by type">List of programming languages by type</a></li></ul>
</div></td></tr></tbody></table></div></div><!--htdig_noindex--><div><div class="zim-footer">
This article is issued from <a class="external text" title="Last edited on 2024-11-06" href="https://en.wikipedia.org/wiki/?title=Template_processor&amp;oldid=1255794421">Wikipedia</a>. The text is available under <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-Share Alike 4.0</a> unless otherwise noted. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>

</body></html>